# coding=utf-8
from chains.C2_recall_material import recall_material_list
from chains.C3_material_problem import Material2Problem
from chains.C4_get_prompt import get_prompt
from chains.C5_AI_answer import AI_Answer
from chains.C20_get_prompt_third import get_prompt_third
from chains.C13_bubble_score import Global_Score
from chains.C15_bubble_title import Bubble
from collections import OrderedDict
from utils.db import LawDB
from pprint import pprint
import time

class Overall_Bubble:

    async def overall_bubble(self, index_paragraph_sentence_dict: dict, sector: str, industry: str, region: str, user_id: int, file_name: str, fileId: str):

        start_time = time.time()
        print("切片JOSN长度", len(index_paragraph_sentence_dict))

        score_list = [[] for _ in range(len(index_paragraph_sentence_dict))]  # 创建 10 个独立的空列表
        for key, value in index_paragraph_sentence_dict.items():
            content_text = value['切片']

            # 调用 C15 获取问题分类标签
            time_0 = time.time()
            Title = Bubble()
            problem_type_list = await Title.title_bubble(content_text, sector)
            time_1 = time.time()
            print('调用 C15 获取问题分类标签 时间：', time_1 - time_0)

            # 调用 C2 获得材料详情列表
            material_list = await recall_material_list(content_text, 4, sector, industry, region, problem_type_list)
            time_2 = time.time()
            print('调用 C2 获得材料详情列表 时间：', time_2 - time_1)
            material_id_list = []
            material_content_list = []
            for material_dict in material_list:
                material_id_list.append(list(material_dict.keys())[0])
                material_content_list.append(list(material_dict.values())[0])

            # 调用 C13 获得 切片得分
            Score = Global_Score()
            score = await Score.bubble_score(content_text, material_list)
            time_3 = time.time()
            print('调用 C13 获得 切片得分 时间：', time_3 - time_2)
            score_list[int(score) - 1].append({int(key): {"召回材料ID列表": material_id_list, "评分": score, "问题分类标签": problem_type_list}})

            bubble_dict = OrderedDict()
            bubble_dict['aiText'] = ''
            bubble_dict['aiTextThird'] = ''
            bubble_dict['useFlag'] = False
            bubble_dict['xialaCut'] = False
            bubble_dict['aiBtnFlag'] = False
            bubble_dict['materials'] = material_content_list
            bubble_dict['cutBtnFlag'] = 2
            bubble_dict['sliceIndex'] = key
            bubble_dict['bubbleScore'] = score
            bubble_dict['bubbleTitle'] = problem_type_list
            bubble_dict['contentText'] = content_text
            bubble_dict['domElementCur'] = None
            bubble_dict['problem_id_list'] = []
            bubble_dict['material_id_list'] = material_id_list

            db = LawDB()
            await db.init_conn()
            await db.insert_history_overall(user_id=user_id, file_name=file_name, bubble=bubble_dict, fileId=fileId, status_code=0,slice_index=key, score=score)


        # score_list = [[], [{"0": {"召回材料列表": [{"84545": "（1）根据具体合同的执行内容、执行模式，发行人业务可划分为四种产品或服务，即技术开发、软件产品、商品销售、技术服务，招股说明书按照四类产品或服务披露收入结构。"}, {"84717": "（1）根据具体合同的执行内容、执行模式，发行人业务可划分为四种产品或服务，即技术开发、软件产品、商品销售、技术服务，招股说明书按照四类产品或服务披露收入结构。"}, {"86558": "（1）发行人所处行业专业性较强，发行人在招股说明书“第六节 业务与技1-151术”中使用了较多的专业术语，如有功功率、无功功率、低价上网、增闭锁、减闭锁、天气背景场数据降尺度处理等。"}, {"86882": "（1）发行人所处行业专业性较强，发行人在招股说明书“第六节 业务与技术”中使用了较多的专业术语，如有功功率、无功功率、低价上网、增闭锁、减闭锁、天气背景场数据降尺度处理等。"}], "评分": 2}}, {"6": {"召回材料列表": [{"84599": "公司提供的服务及产品包括技术开发、软件产品、商品销售和技术服务四大类，其中，技术开发以军事仿真系统的定制开发为主；软件产品包括基础软件产品、应用软件产品。"}, {"84771": "公司提供的服务及产品包括技术开发、软件产品、商品销售和技术服务四大类，其中，技术开发以军事仿真系统的定制开发为主；软件产品包括基础软件产品、应用软件产品。"}, {"40401": "（1）公司的主要产品包括军事训练装备和特种军事装备。军事训练装备是以数据分析软件、信道仿真软件等软件为支撑，以半实物或实物为载体，构建通信与指挥、实战化模拟训练系统，以满足作战部队高度接近实战环境、实战状况的训练需求。特种军事装备主要包括野战光通信装备、***搜索器等。"}, {"40545": "（1）公司的主要产品包括军事训练装备和特种军事装备。军事训练装备是以数据分析软件、信道仿真软件等软件为支撑，以半实物或实物为载体，构建通信与指挥、实战化模拟训练系统，以满足作战部队高度接近实战环境、实战状况的训练需求。特种军事装备主要包括野战光通信装备、***搜索器等。"}], "评分": 2}}, {"8": {"召回材料列表": [{"84599": "公司提供的服务及产品包括技术开发、软件产品、商品销售和技术服务四大类，其中，技术开发以军事仿真系统的定制开发为主；软件产品包括基础软件产品、应用软件产品。"}, {"84771": "公司提供的服务及产品包括技术开发、软件产品、商品销售和技术服务四大类，其中，技术开发以军事仿真系统的定制开发为主；软件产品包括基础软件产品、应用软件产品。"}, {"81069": "（1）由于公司的核心竞争优势在于智能矿山系统产品的整体方案设计、软硬件开发、信息系统集成等，因此对于部分非核心生产环节，例如防爆外壳等金属结构件的铸造、线路板的焊接及系统设备的就地安装等，公司通过外协加工的方式缩短生产流程。1-78"}, {"81168": "（1）由于公司的核心竞争优势在于智能矿山系统产品的整体方案设计、软硬件开发、信息系统集成等，因此对于部分非核心生产环节，例如防爆外壳等金属结构件的铸造、线路板的焊接及系统设备的就地安装等，公司通过外协加工的方式缩短生产流程。"}], "评分": 2}}], [{"1": {"召回材料列表": [{"86559": "（2）招股说明书多处数据引自沙利文《中国新能源软件及数据服务行业报告》。"}, {"86883": "（2）招股说明书多处数据引自沙利文《中国新能源软件及数据服务行业报告》。"}, {"86820": "（4）截至招股说明书签署日，公司及控股子公司不存在对财务状况、经营成果、声誉、业务活动、未来前景可能产生较大影响的重大诉讼、仲裁或行政处罚事项。但公开信息显示，发行人存在诉讼及买卖合同纠纷。"}, {"41176": "（4）根据发行人实际情况，与新三板挂牌时披露的信息相比，本次招股说明书主要调整了发行人董监高人员情况、所属行业、关联方及关联关系等。"}], "评分": 3}}, {"2": {"召回材料列表": [{"80765": "（2）公司招股说明书提示了市场竞争风险、公司规模的扩张带来的管理风险、生产经营场所租赁瑕疵的风险等 20 项风险，部分风险提示存在针对性不强等情形。"}, {"87117": "（2）招股说明书中，发行人对部分子版块进行了重点介绍，如智慧民生子业务重点介绍了智慧园区、智慧医疗业务，城市管理与服务子业务重点介绍了智慧交通、智慧港口业务，发行人未对其它各业务板块的具体内容、业务模式进行介绍。"}, {"87218": "（2）招股说明书中，发行人对部分子版块进行了重点介绍，如智慧民生子业务重点介绍了智慧园区、智慧医疗业务，城市管理与服务子业务重点介绍了智慧交通、智慧港口业务，发行人未对其它各业务板块的具体内容、业务模式进行介绍。"}, {"80768": "（2）结合主营业务构成及竞争格局，修改完善招股说明书相关风险提示，进一步提升风险提示的针对性，并按重要性予以恰当排序。请保荐人发表明确意见。"}], "评分": 3}}, {"3": {"召回材料列表": [{"40495": "（1）发行人成立于 2017 年，主营业务为适应实战化需求的军事训练装备及特种军事装备。发行人说明，军品业务研发周期相对较长，公司核心技术均自主研发完成。1-45"}, {"40351": "（1）发行人成立于 2017 年，主营业务为适应实战化需求的军事训练装备及特种军事装备。发行人说明，军品业务研发周期相对较长，公司核心技术均自主研发完成。"}, {"84557": "（2）报告期内，发行人来自军方单位（含部队、军事院校及军队研究院所、军队机关单位）的收入金额持续增长，收入金额占比分别为 55.78%、55.94%、85.19%，主要系上述客户军事仿真业务需求增加所致；发行人向院校提供的服务主要是技术开发，相关营业收入在报告期内大幅增长但未解释具体原因；发行人向军队机关单位的销售收入报告期内相对较小且基本稳定。"}, {"84729": "（2）报告期内，发行人来自军方单位（含部队、军事院校及军队研究院所、军队机关单位）的收入金额持续增长，收入金额占比分别为 55.78%、55.94%、85.19%，主要系上述客户军事仿真业务需求增加所致；发行人向院校提供的服务主要是技术开发，相关营业收入在报告期内大幅增长但未解释具体原因；发行人向军队机关单位的销售收入报告期内相对较小且基本稳定。"}], "评分": 3}}, {"4": {"召回材料列表": [{"84602": "公司以仿真为基本依托，逐渐向装备、训练、试验和保障的深度业务扩展，成为军方强有力和可信赖的优质供应商‛。"}, {"40401": "（1）公司的主要产品包括军事训练装备和特种军事装备。军事训练装备是以数据分析软件、信道仿真软件等软件为支撑，以半实物或实物为载体，构建通信与指挥、实战化模拟训练系统，以满足作战部队高度接近实战环境、实战状况的训练需求。特种军事装备主要包括野战光通信装备、***搜索器等。"}, {"40545": "（1）公司的主要产品包括军事训练装备和特种军事装备。军事训练装备是以数据分析软件、信道仿真软件等软件为支撑，以半实物或实物为载体，构建通信与指挥、实战化模拟训练系统，以满足作战部队高度接近实战环境、实战状况的训练需求。特种军事装备主要包括野战光通信装备、***搜索器等。"}, {"84599": "公司提供的服务及产品包括技术开发、软件产品、商品销售和技术服务四大类，其中，技术开发以军事仿真系统的定制开发为主；软件产品包括基础软件产品、应用软件产品。"}], "评分": 3}}, {"5": {"召回材料列表": [{"40401": "（1）公司的主要产品包括军事训练装备和特种军事装备。军事训练装备是以数据分析软件、信道仿真软件等软件为支撑，以半实物或实物为载体，构建通信与指挥、实战化模拟训练系统，以满足作战部队高度接近实战环境、实战状况的训练需求。特种军事装备主要包括野战光通信装备、***搜索器等。"}, {"40545": "（1）公司的主要产品包括军事训练装备和特种军事装备。军事训练装备是以数据分析软件、信道仿真软件等软件为支撑，以半实物或实物为载体，构建通信与指挥、实战化模拟训练系统，以满足作战部队高度接近实战环境、实战状况的训练需求。特种军事装备主要包括野战光通信装备、***搜索器等。"}, {"84599": "公司提供的服务及产品包括技术开发、软件产品、商品销售和技术服务四大类，其中，技术开发以军事仿真系统的定制开发为主；软件产品包括基础软件产品、应用软件产品。"}, {"84771": "公司提供的服务及产品包括技术开发、软件产品、商品销售和技术服务四大类，其中，技术开发以军事仿真系统的定制开发为主；软件产品包括基础软件产品、应用软件产品。"}], "评分": 3}}, {"7": {"召回材料列表": [{"84599": "公司提供的服务及产品包括技术开发、软件产品、商品销售和技术服务四大类，其中，技术开发以军事仿真系统的定制开发为主；软件产品包括基础软件产品、应用软件产品。"}, {"84771": "公司提供的服务及产品包括技术开发、软件产品、商品销售和技术服务四大类，其中，技术开发以军事仿真系统的定制开发为主；软件产品包括基础软件产品、应用软件产品。"}, {"40401": "（1）公司的主要产品包括军事训练装备和特种军事装备。军事训练装备是以数据分析软件、信道仿真软件等软件为支撑，以半实物或实物为载体，构建通信与指挥、实战化模拟训练系统，以满足作战部队高度接近实战环境、实战状况的训练需求。特种军事装备主要包括野战光通信装备、***搜索器等。"}, {"40545": "（1）公司的主要产品包括军事训练装备和特种军事装备。军事训练装备是以数据分析软件、信道仿真软件等软件为支撑，以半实物或实物为载体，构建通信与指挥、实战化模拟训练系统，以满足作战部队高度接近实战环境、实战状况的训练需求。特种军事装备主要包括野战光通信装备、***搜索器等。"}], "评分": 3}}, {"10": {"召回材料列表": [{"81087": "（2）公司的销售模式以直销模式为主、经销模式为辅，其中直销模式中包含一般直销模式和销售服务商模式。销售服务商模式各期收入占比分别为41.12%、29.60%、22.95%，经销模式各期收入占比分别为 37.25%、32.85%、25.16%。1-136"}, {"81186": "（2）公司的销售模式以直销模式为主、经销模式为辅，其中直销模式中包含一般直销模式和销售服务商模式。销售服务商模式各期收入占比分别为41.12%、29.60%、22.95%，经销模式各期收入占比分别为 37.25%、32.85%、25.16%。1-135"}, {"84462": "（1）报告期内，发行人商品销售业务营业收入金额分别为 1,149.60 万元、3,409.85 万元、16,444.59 万元、3,553.19 万元，占主营业务收入的比例分别为4.68%、10.66%、31.24%、42.37%。"}, {"88090": "（1）报告期内，发行人存在直销、经销两种销售模式，报告期各期经销模式的销售收入分别为 239.64万元、29.65 万元、1677.93 万元、257.29 万元，占比分别为 0.93%、0.10%、4.26%、1.14%，毛利率分别为 92.17%、89.51%、97.97%、97.89%。经销模式毛利率高于直销模式。"}], "评分": 3}}], [], [], [], [{"9": {"召回材料列表": [{"80767": "（1）结合公司主营业务细分领域及构成，修改完善公司业务产品相关描述，平实准确地反映公司业务实质，并说明公司主要产品实现的主要功能以及应用的具体流程环节。"}, {"84545": "（1）根据具体合同的执行内容、执行模式，发行人业务可划分为四种产品或服务，即技术开发、软件产品、商品销售、技术服务，招股说明书按照四类产品或服务披露收入结构。"}, {"84717": "（1）根据具体合同的执行内容、执行模式，发行人业务可划分为四种产品或服务，即技术开发、软件产品、商品销售、技术服务，招股说明书按照四类产品或服务披露收入结构。"}, {"80865": "（1）说明公司各项主营业务相关核心技术的主要衡量指标及公司与国内外主要竞争对手在相应指标的差距情况，相关业务的市场规模情况及公司与国内外主要竞争对手在市场占有率方面的差异情况，公司相应业务领域提供的产品或服务与主要竞争对手的异同。"}], "评分": 7}}], [], [], [], []]
        print(score_list)

        max_num = 64
        start_num = 0
        for index, num_list in enumerate(reversed(score_list)):
          start_num += len(num_list)
          if start_num < max_num:
            continue
          else:
            print(index, start_num)
            break
        score_list = score_list[len(score_list) - index - 1:]

        all_score_list = []
        for score in score_list:
          for s in score:
            all_score_list.append(s)
        pprint(all_score_list)
        # 按字典中所有键的最小值排序
        sorted_score_list = sorted(all_score_list, key=lambda x: list(x.keys())[0])
        pprint(sorted_score_list)
        print("出气泡前时长",time.time() - start_time)


        for score_dict in sorted_score_list:
            for slice_index, detail_dict in score_dict.items():
                Material = Material2Problem()
                problem_id_list = await Material.material_problem(detail_dict['召回材料ID列表'])
                aiText_prompt = await get_prompt(index_paragraph_sentence_dict[str(slice_index)]["切片"], problem_id_list)
                time_4 = time.time()
                AI = AI_Answer()
                aiText = ''
                async for Text in AI.get_ai_answer(aiText_prompt):
                    aiText += Text
                time_5 = time.time()
                print('调用 C4 获取 发行人 回答 时间：', time_5 - time_4)
                aiTextThird_prompt = await get_prompt_third(index_paragraph_sentence_dict[str(slice_index)]['切片'], problem_id_list, aiText)
                aiTextThird = ''
                async for Text in AI.get_ai_answer(aiTextThird_prompt):
                    aiTextThird += Text
                time_6 = time.time()
                print('调用 C5 获取 第三方 回答 时间：', time_6 - time_5)
                bubble_dict = OrderedDict()
                bubble_dict['aiText'] = aiText
                bubble_dict['aiTextThird'] = aiTextThird
                # bubble_dict['prompt'] = ''
                bubble_dict['useFlag'] = False
                bubble_dict['xialaCut'] = False
                bubble_dict['aiBtnFlag'] = False
                bubble_dict['materials'] = material_content_list
                bubble_dict['cutBtnFlag'] = 2
                bubble_dict['sliceIndex'] = key
                bubble_dict['bubbleScore'] = detail_dict['评分']
                bubble_dict['bubbleTitle'] = problem_type_list
                bubble_dict['contentText'] = index_paragraph_sentence_dict[str(slice_index)]['切片']
                bubble_dict['domElementCur'] = None
                bubble_dict['problem_id_list'] = problem_id_list
                bubble_dict['material_id_list'] = material_id_list

                # await db.update_history_overall(user_id=user_id, fileId=fileId, bubble=bubble_dict, status_code=0, slice_index=int(slice_index), score=int(detail_dict['评分']), bubble_num=len(sorted_score_list))

        print('全局模式结束')
        end_time = time.time()
        print("总时长", end_time - start_time)

        return '全局模式结束'

if __name__ == '__main__':

    import asyncio
    Overall = Overall_Bubble()
    index_paragraph_sentence_dict = {
  "0": {
    "文本": "第一节  释义\n本招股说明书中，除非文义另有所指，下列缩略语和术语具有如下涵义：\n一、一般释义\n二、专业释义\n本招股说明书中部分合计数与各加数直接相加之和在尾数上有差异，或部分比例指 标与相关数值直接计算的结果在尾数上有差异，这些差异是由四舍五入造成的。\n",
    "文本段落索引列表": [
      108,
      110,
      111,
      122,
      130
    ],
    "切片": "第一节  释义\n本招股说明书中，除非文义另有所指，下列缩略语和术语具有如下涵义：\n一、一般释义\n二、专业释义\n本招股说明书中部分合计数与各加数直接相加之和在尾数上有差异，或部分比例指 标与相关数值直接计算的结果在尾数上有差异，这些差异是由四舍五入造成的。\n本招股说明书所引用的有关行业的统计及其他信息，均来自不同的公开刊物、研究 报告及行业专业机构提供的信息，但由于引用不同来源的统计信息可能其统计口径有一 定的差异，统计信息并非完全具有可比性。\n",
    "切片段落索引列表": [
      108,
      110,
      111,
      122,
      130,
      131
    ]
  },
  "1": {
    "文本": "本招股说明书所引用的有关行业的统计及其他信息，均来自不同的公开刊物、研究 报告及行业专业机构提供的信息，但由于引用不同来源的统计信息可能其统计口径有一 定的差异，统计信息并非完全具有可比性。\n",
    "文本段落索引列表": [
      131
    ],
    "切片": "本招股说明书所引用的有关行业的统计及其他信息，均来自不同的公开刊物、研究 报告及行业专业机构提供的信息，但由于引用不同来源的统计信息可能其统计口径有一 定的差异，统计信息并非完全具有可比性。\n",
    "切片段落索引列表": [
      131
    ]
  },
  "2": {
    "文本": "第二节  概览\n本概览仅对招股说明书全文作扼要提示，投资者作出投资决策前，应认真阅读招股 说明书全文。\n",
    "文本段落索引列表": [
      134,
      136
    ],
    "切片": "第二节  概览\n本概览仅对招股说明书全文作扼要提示，投资者作出投资决策前，应认真阅读招股 说明书全文。\n",
    "切片段落索引列表": [
      134,
      136
    ]
  },
  "3": {
    "文本": "一、发行人及本次发行的中介机构基本情况\n（一）发行人基本情况\n（二）本次发行有关中介机构\n二、本次发行概况\n（一）本次发行基本情况\n（二）本次发行上市的重要日期\n三、发行人报告期的主要财务数据和财务指标\n四、发行人主营业务经营情况\n（一）主营业务和产品\n公司是一家主要从事航空、航天用部件及材料研发、生产和销售的高新技术企业， 下设钛合金精密铸造事业部、橡胶与密封材料事业部、飞机座舱透明件事业部、高温合 金熔铸事业部，主要产品分别为钛合金铸件、橡胶与密封件、透明件和高温合金母合金。",
    "文本段落索引列表": [
      137,
      139,
      141,
      143,
      145,
      150,
      152,
      157,
      159,
      160
    ],
    "切片": "一、发行人及本次发行的中介机构基本情况\n（一）发行人基本情况\n（二）本次发行有关中介机构\n二、本次发行概况\n（一）本次发行基本情况\n（二）本次发行上市的重要日期\n三、发行人报告期的主要财务数据和财务指标\n四、发行人主营业务经营情况\n（一）主营业务和产品\n公司是一家主要从事航空、航天用部件及材料研发、生产和销售的高新技术企业， 下设钛合金精密铸造事业部、橡胶与密封材料事业部、飞机座舱透明件事业部、高温合 金熔铸事业部，主要产品分别为钛合金铸件、橡胶与密封件、透明件和高温合金母合金。 除航空、航天领域外，公司产品还广泛应用于船舶、兵器、电子、核工业、铁路、桥梁、 生物工程等领域。\n",
    "切片段落索引列表": [
      137,
      139,
      141,
      143,
      145,
      150,
      152,
      157,
      159,
      160,
      160
    ]
  },
  "4": {
    "文本": " 除航空、航天领域外，公司产品还广泛应用于船舶、兵器、电子、核工业、铁路、桥梁、 生物工程等领域。\n",
    "文本段落索引列表": [
      160
    ],
    "切片": " 除航空、航天领域外，公司产品还广泛应用于船舶、兵器、电子、核工业、铁路、桥梁、 生物工程等领域。\n",
    "切片段落索引列表": [
      160
    ]
  },
  "5": {
    "文本": "钛合金精密铸造事业部主要产品为航空、航天钛合金铸件， 主要用于航空发动机中 介机匣、压气机、风扇、机翼连接件、垂尾助力支架、防火墙、航天火箭部件、兵器弹 体、进气通道、油箱、骨架部件、炮弹部件、车辆光学部件以及机械泵阀体、重型卡车 叶轮、柴油涡轮增压器等。\n",
    "文本段落索引列表": [
      161
    ],
    "切片": "钛合金精密铸造事业部主要产品为航空、航天钛合金铸件， 主要用于航空发动机中 介机匣、压气机、风扇、机翼连接件、垂尾助力支架、防火墙、航天火箭部件、兵器弹 体、进气通道、油箱、骨架部件、炮弹部件、车辆光学部件以及机械泵阀体、重型卡车 叶轮、柴油涡轮增压器等。\n",
    "切片段落索引列表": [
      161
    ]
  },
  "6": {
    "文本": "橡胶与密封材料事业部主要产品为弹性元件、减振器、橡胶复合型材等橡胶制件， 航空橡胶密封剂及橡胶胶料等，主要用于直升机旋翼系统、航空航天等各领域减振器件、 高铁车辆转向架及电气吊装减振、重型卡车悬挂； 航空发动机橡胶密封、核工业橡胶密 封、化学工业橡胶密封； 飞机整体油箱、机身需要高温密封部位、电子电器灌封、飞机 座舱玻璃密封、新能源光伏领域高性能有机硅密封、薄膜电池丁基密封， 复合材料成型 真空袋丁基密封等。\n",
    "文本段落索引列表": [
      162
    ],
    "切片": "橡胶与密封材料事业部主要产品为弹性元件、减振器、橡胶复合型材等橡胶制件， 航空橡胶密封剂及橡胶胶料等，主要用于直升机旋翼系统、航空航天等各领域减振器件、 高铁车辆转向架及电气吊装减振、重型卡车悬挂； 航空发动机橡胶密封、核工业橡胶密 封、化学工业橡胶密封； 飞机整体油箱、机身需要高温密封部位、电子电器灌封、飞机 座舱玻璃密封、新能源光伏领域高性能有机硅密封、薄膜电池丁基密封， 复合材料成型 真空袋丁基密封等。\n",
    "切片段落索引列表": [
      162
    ]
  },
  "7": {
    "文本": "飞机座舱透明件事业部主要产品为有机玻璃透明件和无机玻璃透明件，产品包括有 机整体圆弧风挡、气泡式座舱盖、整体座舱盖、各种观察窗玻璃、灯罩， 无机复合电加 温风挡等，主要用于歼击机座舱，直升机、通用飞机、特种飞机驾驶舱以及观察窗等。\n",
    "文本段落索引列表": [
      163
    ],
    "切片": "飞机座舱透明件事业部主要产品为有机玻璃透明件和无机玻璃透明件，产品包括有 机整体圆弧风挡、气泡式座舱盖、整体座舱盖、各种观察窗玻璃、灯罩， 无机复合电加 温风挡等，主要用于歼击机座舱，直升机、通用飞机、特种飞机驾驶舱以及观察窗等。\n",
    "切片段落索引列表": [
      163
    ]
  },
  "8": {
    "文本": "高温合金熔铸事业部主要产品为粉末高温合金母合金、单晶高温合金母合金、定向 高温合金母合金、等轴晶高温合金母合金、变形高温合金母合金、大型高温合金铸件等，\n主要用于生产航空发动机涡轮叶片、导向叶片、复杂结构件及整铸涡轮，航空发动机粉 末盘、航空航天等各领域结构锻件、饼材、环件，汽车/舰船/燃机用涡轮增压器用整铸 涡轮，核燃料组件，生物医用植入假体等。\n",
    "文本段落索引列表": [
      164,
      167
    ],
    "切片": "高温合金熔铸事业部主要产品为粉末高温合金母合金、单晶高温合金母合金、定向 高温合金母合金、等轴晶高温合金母合金、变形高温合金母合金、大型高温合金铸件等，\n主要用于生产航空发动机涡轮叶片、导向叶片、复杂结构件及整铸涡轮，航空发动机粉 末盘、航空航天等各领域结构锻件、饼材、环件，汽车/舰船/燃机用涡轮增压器用整铸 涡轮，核燃料组件，生物医用植入假体等。\n",
    "切片段落索引列表": [
      164,
      167
    ]
  },
  "9": {
    "文本": "公司主要产品详细介绍参见本招股说明书“第六节 业务与技术 ”之“一、发行人 主营业务、主要产品及变化情况 ”之“（一）公司主营业务、主要产品基本情况 ”。\n",
    "文本段落索引列表": [
      168
    ],
    "切片": "公司主要产品详细介绍参见本招股说明书“第六节 业务与技术 ”之“一、发行人 主营业务、主要产品及变化情况 ”之“（一）公司主营业务、主要产品基本情况 ”。\n",
    "切片段落索引列表": [
      168
    ]
  },
  "10": {
    "文本": "报告期内，公司主营业务收入构成情况如下：\n单位：万元\n（二）主要经营模式\n发行人采用事业部管理模式，各事业部独立开展采购、研发、生产和销售活动。\n",
    "文本段落索引列表": [
      169,
      170,
      171,
      172
    ],
    "切片": "报告期内，公司主营业务收入构成情况如下：\n单位：万元\n（二）主要经营模式\n发行人采用事业部管理模式，各事业部独立开展采购、研发、生产和销售活动。\n",
    "切片段落索引列表": [
      169,
      170,
      171,
      172
    ]
  }
}
    Sector = '创业板'
    Industry = '软件和信息技术服务业'
    Region = ''
    user_id = 11
    file_name = '招股书.docx'
    fileId = 'f123'
    asyncio.run(Overall.overall_bubble(index_paragraph_sentence_dict, Sector, Industry, Region, user_id, file_name, fileId))